from django.urls import path, re_path
# 导入Django提供的路由转换进行路径中数据提取
from django.urls import register_converter
from . import views

# 自定义转换器
class MobileConverter:
    # 写匹配规则
    regex = '1[3-9]\d{9}'
    def to_python(self, value):
        return int(value)
    def to_url(self, value):
        return str(value)
# 转换器注册
# 第一个参数 是自定义转换器的类名 第二个参数是转换器名称
register_converter(MobileConverter,'mobile')


urlpatterns = {
    # 登录 http://127.0.0.1:8000/login/
    # path方法中第一参数：匹配路径  path方法中第二参数：匹配成功后需要调用的方法，在views.py文件中编写
    path('login', views.login),
    path('register', views.RegisterView.as_view()),

    # ---------数据获取-----------
    # 查询字符串数据获取
    # path('query', views.QueryString.as_view())

    # 用自定义转换器，匹配路径中的数据http://127.0.0.1:8000/query/python/17779315845
    path('query/<str:name>/<mobile:mobile>', views.QueryString.as_view()),

    # re_path() 可以直接在匹配时写正则表达式
    re_path('^url/(?P<mobile>1[3-9]\d{9}$)', views.RePathView.as_view())

}